<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <script>
        // Object.assign()方法用于对象的合并，
        // 将源对象（source）的所有可枚举属性，复制到目标对象（target）
        const target = {a: 1};

        const source1 = {b: 2};
        const source2 = {c: 3};

        Object.assign(target, source1, source2);
        console.log(target);

        // 如果目标对象与源对象有同名属性，或多个源对象有同名属性，
        // 则后面的属性会覆盖前面的属性
        const target1 = {a: 1, b:1};

        const source3 = {b: 2, c: 2};
        const source4 = {c: 3};

        Object.assign(target1, source3, source4);
        console.log(target1);

        // Object.assign()只能进行值的复制，
        // 如果要复制的值是一个取值函数，那么将求值后再复制
        const source = {
            get foo() {return 1}
        };
        const target2 = {};

        Object.assign(target2, source);
        console.log(target2);

    </script>

</head>
<body>

</body>
</html>